﻿Imports System.Windows.Forms
Imports Testeitor.Entidades
Imports Testeitor.DAO

Public Class DialogUsuario

    Private _lista As System.Collections.Generic.List(Of Entidades.EntityBase)
    Private _operacion As Util.Operacion
    Private _usuario As UsuarioEntity

    Public Sub New(ByVal oper As Util.Operacion)
        InitializeComponent()
        Me._operacion = oper
    End Sub

    Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click
        Dim dao As New RolDAO()
        Select Case _operacion
            Case Util.Operacion.GUARDAR
                Dim usuario As New UsuarioEntity(txtNombre.Text, txtApellido.Text, Convert.ToDateTime(dateAlta.Text), _
                                         cmbRol.SelectedValue, txtUser.Text, txtPassword.Text, txtMail.Text)
                dao.Insertar(usuario)
                Util.mensaje("El Rol se ha guardado correctamente!", "Rol Guardado")
            Case Util.Operacion.MODIFICAR
                _usuario.Nombre = txtNombre.Text
                _usuario.Apellido = txtApellido.Text
                _usuario.FechaAlta = Convert.ToDateTime(Me.dateAlta.Text)
                _usuario.RolID = cmbRol.SelectedValue
                _usuario.Login = txtUser.Text
                _usuario.Password = txtPassword.Text
                _usuario.Email = txtMail.Text
                dao.Actualizar(_usuario)
                Util.mensaje("El Rol se ha modificado correctamente!", "Rol Guardado")
            Case Util.Operacion.ELIMINAR
                dao.Eliminar(_usuario.Id)
                Util.mensaje("El Rol se ha eliminado correctamente!", "Rol Guardado")
        End Select

        Me.DialogResult = System.Windows.Forms.DialogResult.OK
        Me.Close()
    End Sub

    Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel_Button.Click
        Me.DialogResult = System.Windows.Forms.DialogResult.Cancel
        Me.Close()
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim dialogRol As New DialogRol(Util.Operacion.GUARDAR)
        dialogRol.ShowDialog()
    End Sub

    Public Sub cargarDatos(ByVal usuario As Entidades.EntityBase)
        _usuario = usuario
        txtNombre.Text = DirectCast(_usuario, UsuarioEntity).Nombre
        txtApellido.Text = DirectCast(_usuario, UsuarioEntity).Apellido
        dateAlta.Text = DirectCast(_usuario, UsuarioEntity).FechaAlta
        cmbRol.SelectedValue = DirectCast(_usuario, UsuarioEntity).RolID
        txtMail.Text = DirectCast(_usuario, UsuarioEntity).Email
        txtUser.Text = DirectCast(_usuario, UsuarioEntity).Login
        txtPassword.Text = DirectCast(_usuario, UsuarioEntity).Password

        If _operacion.Equals(Util.Operacion.ELIMINAR) Then
            txtNombre.Enabled = False
            txtApellido.Enabled = False
            dateAlta.Enabled = False
            cmbRol.Enabled = False
            txtMail.Enabled = False
            txtUser.Enabled = False
            txtApellido.Enabled = False
        End If

    End Sub

    Private Sub DialogUsuario_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim rolDao As New RolDAO()
        _lista = rolDao.SeleccionarTodas()

        Util.cargarComboEntity(cmbRol, _lista)
    End Sub

End Class
